﻿#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
#include <vector>
#include <string>
#include <unordered_map>
#include <unordered_set>
using namespace std;
// 原题连接：https://dashoj.com/d/lqbproblem/p/197
/*
题目描述：
题目描述
一个整数如果按从低位到高位的顺序，奇数位（个位、百位、万位 · · · ）上 的数字是奇数，偶数位（十位、千位、十万位 · · · ）上的数字是偶数，我们就称 之为“好数”。 给定一个正整数
�
N，请计算从
1
1 到
�
N 一共有多少个好数。

输入格式
一个整数
�
N。

输出格式
一个整数代表答案。

样例
输入数据 1
24
输出数据 1
7
解释 #1
对于第一个样例，
24
24 以内的好数有
1
、
3
、
5
、
7
、
9
、
21
、
23
1、3、5、7、9、21、23，一共
7
7 个。

输入数据 2
2024
输出数据 2
150
数据范围
对于
10
%
10% 的评测用例，
1
≤
�
≤
100
1≤N≤100。
对于
100
%
100% 的评测用例，
1
≤
�
≤
1
0
7
1≤N≤10
7
 。
*/

bool check(int x) {
	int flag = -1; // -1表示当前位是要是奇数，1表示当前位是要是偶数
	while (x) {
		int t = x % 10;
		if (flag == -1) {
			if (t % 2 == 0) {
				return false;
			}
		}
		else {
			if (t % 2) {
				return false;
			}
		}
		x /= 10;
		flag *= -1;
	}
	return true;
}

int main() {
	int n = 0;
	scanf("%d", &n);
	int ret = 0;
	for (int i = 1; i <= n; i++) {
		if (check(i)) {
			ret++;
		}
	}
	cout << ret << endl;
	return 0;
}